<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * ApplicationPlanet Model
 */
class BeModelApplicationColony extends BeModel {

	/**
	 * Findet alle Kolonien auf einem Planeten
	 * @param array $options Array mit definierten Optionen, um die Suche einzugrenzen
	 * @param array $select Array mit Feldern, die geladen werden sollen
	 * @param array $ordering Array mit den Feldern wonach gesucht werden soll
	 * @param int $limit Anzahl der Datensaetze die geladen werden sollen
	 * @return array Array mit den Objekten der Planeten
	 */
	public function findall($options = array(), $select = array(), $ordering = array(), $limit = null) {
		$input	=	&JFilterInput::getInstance();
		$return	= array();
    $query	= $this->_db->getQuery(true)
			->select('ac.*')
			->from('#__be_application_colonies AS ac');

		// -----------------------------------------------------------------------------------
		// Uid
		if(isset($options['id']) !== false) {
			if(is_array($options['id']) === false) {
				$options['id'] = array((int) $options['id']);
			}

			$query->where('ac.id IN (' . implode(',', $input->clean($options['id'], null)) . ')');
		}

		// -----------------------------------------------------------------------------------
		// Match-Id
		if(isset($options['match']) !== false) {
			$query->where('ac.match = ' . (int) $options['match']);
		}

		// -----------------------------------------------------------------------------------
		// Planet-Id
		if(isset($options['planet']) !== false) {
			$query->where('ac.planet = ' . (int) $options['planet']);
		}

    $this->_db->setQuery($query);
    if(($rows = $this->_db->loadObjectList()) !== false) {
			foreach($rows as $row) {
				$table = $this->getTable();
				$table->bind($row);

				$return[(int) $row->id] = $table;
			}
    }

		return $return;
	}

	/**
	 * Findet einen Planeten der auf die uebergebenen Bedingungen zutrifft
	 * @param array $options Array mit definierten Optionen, um die Suche einzugrenzen
	 * @return array Array mit den Objekten der Planeten
	 */
	public function find($options = array()) {
		return current($this->findall($options));
	}
}
?>